home *** CD-ROM | disk | FTP | other *** search
- 0 rem**********************************
- 1 rem* *
- 2 rem* loan calculator *
- 3 rem* *
- 4 rem*copyright (c) 1984 by h.l.boelte*
- 5 rem* *
- 6 rem* all rights reserved *
- 7 rem* *
- 8 rem**********************************
- 10 poke53280,0:poke53281,0
- 15 p$=""
- 20 ca=1:e=0:a$=""::dimcs$(5,8):f$=" [146]":f1$=" ":f2$="[157][157][157][157][157][157]"
- 30 def fna(x)=int(x*100+.5)/100
- 40 gosub550:gosub800
- 45 gosub550
- 50 forl=1to5:forl1=1to8:cs$(l,l1)=f$:next:next
- 60 cs$(1,0)="amount ":cs$(2,0)=" years ":cs$(3,0)=" rate ":cs$(4,0)="payment"
- 70 cs$(0,0)=" ":cs$(0,1)="case 1":cs$(0,2)="case 2":cs$(0,3)="case 3"
- 80 cs$(0,4)="case 4":cs$(0,5)="case 5":cs$(0,6)="case 6":cs$(0,7)="case 7"
- 90 cs$(0,8)="case 8":gosub600
- 100 forl1=1to3:gosub450:a$=""
- 105 printleft$(p$,20)cs$(0,ca)" - "cs$(l1,0);
- 108 input" ";a$
- 109 ifa$=""andval(cs$(l1,ca))>0thengosub180:goto130
- 110 ifval(a$)=0then2000
- 111 ifl1=1andval(a$)>999999then2000
- 112 a$=left$(a$,6)
- 113 if(l1=2orl1=3)andval(a$)>50then2000
- 114 ifcs$(1,ca)=f$then119
- 115 cs$(4,ca)=f$
- 119 cs$(l1,ca)=a$:a$="":gosub610
- 130 gosub600:next:gosub180
- 140 gosub3010
- 150 geta$:ifa$=""then150
- 160 a=asc(a$)-132:ifa<1ora>4then150
- 163 onagoto700,4000,170,5000
- 165 goto150
- 170 gosub450:gosub3000
- 171 ca=1
- 172 ifcs$(l1,ca)<>f$thenifca<8thenca=ca+1:goto172
- 173 ifca=8then178
- 175 gosub600:goto100
- 178 gosub9000:gosub3010:goto150
- 180 l9=l1:l1=4:pv=val(cs$(1,ca)):yr=val(cs$(2,ca)):i=val(cs$(3,ca))
- 190 ir=i/100/12:yr=yr*12
- 200 mp=pv*ir/(1-((1+ir)^-yr))
- 210 s$=str$(fna(mp)):ifmp>999999thens$=" error"
- 211 iflen(s$)>6thens$=mid$(s$,2,6)
- 220 cs$(l1,ca)=s$:iflen(s$)<6thengosub610
- 230 s$="":l1=l9:gosub450:gosub600:return
- 450 printleft$(p$,20)" ":return
- 550 rem *** header ***
- 560 print"[147][158] "spc(38)" ";
- 570 print" loan calculator "spc(38)" ";
- 580 print" [146]"
- 590 return
- 600 printleft$(p$,6):ifca>4then620
- 605 forl3=0to4:print:forl4=0to4:printf1$;f2$;cs$(l3,l4)" ";:next:next:return
- 610 cs$(l1,ca)=left$(f1$,6-len(cs$(l1,ca)))+cs$(l1,ca):return
- 620 forl3=0to4:print:printcs$(l3,0)" ";:forl4=ca-3toca:printf1$;f2$;
- 625 printcs$(l3,l4)" ";:next:next:return
- 700 open4,4
- 705 forl3=0to4:print#4:forl4=0to8
- 706 ifcs$(l3,l4)<>f$thenprint#4,cs$(l3,l4)" ";
- 707 ifcs$(l3,l4)=f$thenprint#4," 0 ";
- 708 next:next:print#4,chr$(13):close4
- 710 goto150
- 800 print""spc(2)"copyright (c) 1984 by h. l. boelte"
- 805 print""spc(10)"all rights reserved"
- 810 print""spc(8)"do you want help (y/n)?"
- 820 geth$:ifh$=""then820
- 830 ifh$="n"thenreturn
- 840 ifh$="y"thengosub900:goto45
- 850 goto820
- 900 gosub550
- 910 print" loan calculator will calculate the"
- 920 print" monthly payment on any amount up to"
- 930 print" $999999 for up to 8 cases allowing you
- 940 [153]" to compare alternatives."
- 950 [153]" you can edit your entries and print
- 960 print" to your printer for a permanent record"
- 970 print" to get the maximum cases on screen,"
- 971 print" your inputs are limited as follows:"
- 972 print" amount - 6 characters or 999999"
- 973 print" years - 50 rate - 50"
- 990 print" press any key when ready [146]"
- 1000 geta$:ifa$=""then1000
- 1010 gosub550
- 1020 print" loan amounts can be entered as 999.99"
- 1030 print" (you don't use the $ sign); however,"
- 1035 print" if it is more than six characters long"
- 1040 print" it will be reduced to six characters."
- 1050 print" this applies to payments also."
- 1060 print" years can be entered as a fraction"
- 1070 print" if necessary. for example; if you"
- 1080 print" want to find the payment on a 42 month"
- 1090 print" loan, enter 3.5 for years."
- 1100 print" interest rate must be entered as 11.5"
- 1110 print" not .115 to get the right answer."
- 1800 print" press any key when ready [146]"
- 1810 geta$:ifa$=""then1810
- 1910 return
- 2000 forl9=1to5
- 2010 printleft$(p$,24)spc(7)" illegal input-try again ":fort=1to500:next
- 2020 printleft$(p$,24)spc(7)" illegal input-try again [146]":fort=1to500:next
- 2030 next:a$="":gosub3000:gosub450:goto105
- 3000 printleft$(p$,24)" ":return
- 3005 printleft$(p$,22)" ":return
- 3010 printleft$(p$,24)"f1[146]=print f3[146]=edit f5[146]=next case f7[146]=opt":return
- 3020 printleft$(p$,24)" f2[146]=erase f4[146]=quit f6[146]=help f8[146]=return":return
- 4000 e=ca:gosub3000:printleft$(p$,22)"edit which case (1-8)";
- 4010 inputa$:a=val(a$):ifa<1ora>8then4000
- 4020 ca=a:gosub3005:ca=a:goto90
- 5000 gosub3000:gosub3020:x=ca
- 5050 geta$:ifa$=""then5050
- 5060 a=asc(a$)-136:ifa<1ora>4then5050
- 5070 onagoto6000,7000,8000,5080:goto5050
- 5080 gosub3000:gosub3010:gosub600:goto150
- 6000 gosub3000:printleft$(p$,22)"erase all cases (y/n)";
- 6010 inputa$:ifa$="y"thenca=1:goto45
- 6020 ifa$="n"thengosub3005:gosub3020:goto5050
- 6025 goto6000
- 7000 poke53280,5:poke53281,0:print"[144]";
- 7010 print"[147]load"chr$(34)"payload"chr$(34)",8":print"run"
- 7020 poke631,13:poke632,13:poke198,2
- 7030 end
- 8000 gosub900:gosub550:gosub600:goto5000
- 9000 forl9=1to5
- 9010 printleft$(p$,24)" all cases used-use edit or erase ":fort=1to500:next
- 9020 printleft$(p$,24)" all cases used-use edit or erase ":fort=1to500:next
- 9030 next:a$="":return
-